package com.swust.service;

import com.swust.dao.Book;
import com.swust.dao.User;

import java.util.List;
import java.util.Map;

import static com.swust.common.Conf.LOGIN_FAIL;
import static com.swust.common.Conf.USER_EXIST;

public class LibServiceImpl {
    private LibDaoImpl libDao = new LibDaoImpl();

    /**
     * 处理用户注册
     *
     * @param user
     * @return
     */
    public boolean regist(User user) {
        if (libDao.isUserExist(user.getUserName()) == USER_EXIST) {
            return false;
        }       // 如果注册的用户名已经被注册过
        libDao.regist(user);
        return true;
    }

    /**
     * 处理用户登录
     *
     * @param userName
     * @param password
     * @return
     */
    public boolean login(String userName, String password) {
        if (libDao.login(userName, password) == LOGIN_FAIL) {
            return false;
        }
        return true;
    }

    /**
     * 增加图书分类
     *
     * @param id
     * @param catgoryName
     * @param description
     * @return
     */
    public boolean addBookCatgory(String id, String catgoryName, String description) {
        if (libDao.isBookCatgory(id)) {
            // 如果没有重复
            libDao.addBookCatgory(id, catgoryName, description);
            return true;
        } else {
            // 如果ID重复
            return false;
        }
    }

    /**
     * 获取图书分类
     * @return
     */
    public List<Map<String, Object>> getBookCatgory() {
        return libDao.getBookClass();
    }

    /**
     * 添加图书
     * @param ID
     * @param bookName
     * @param bookClass
     * @param price
     * @param bookInfo
     */
    public void addBook(Long ID, String bookName, String bookClass, int price, String bookInfo) {
        Book book = new Book(ID, bookName, bookClass, price, bookInfo);
        libDao.addBook(book);
        return;
    }

    /**
     * 获取图书列表
     */
    public List<Book> getBookDb() {
        return libDao.getBookDb();
    }

    /**
     * 根据条件查询图书
     * @param bookID
     * @param bookName
     * @param catgoryName
     * @return
     */
    public List<Book> getBooksByCondition(Long bookID, String bookName, String catgoryName) {
        return libDao.getBooksByCondition(bookID, bookName, catgoryName);
    }
}
